package common.test;

import common.TreeNode;

/**
 * 543. 二叉树的直径
 */
public class _543_DiameterOfBinaryTree {

    private Integer circleDepth = 0;

    public int diameterOfBinaryTree(TreeNode root) {
        if (root == null) {
            return 0;
        }
        getDepth(root);
        return circleDepth - 1;
    }

    public int getDepth(TreeNode root) {
        if (root == null) {
            return 0;
        }
        int l = getDepth(root.left);
        int r = getDepth(root.right);
        circleDepth = Math.max(circleDepth, (l + r + 1));
        return Math.max(l, r) + 1;
    }
}
